package com.mes.utils;

import java.text.DecimalFormat;  
import java.text.ParseException;  
import java.text.SimpleDateFormat;  
import java.util.Date;

/**
 * 功能更强大的格式化工具类
 * @ClassName: formatUtils 
 * @Description:
 * @Author cb
 * @Date 2018年1月15日 下午4:03:00 
 * @version 1.0
 */
public class formatUtils {
	private static SimpleDateFormat second = new SimpleDateFormat(  
            "yy-MM-dd hh:mm:ss");  
  
    private static SimpleDateFormat day = new SimpleDateFormat("yyyy-MM-dd");  
    private static SimpleDateFormat detailDay = new SimpleDateFormat("yyyy年MM月dd日");  
    private static SimpleDateFormat fileName = new SimpleDateFormat("yyyy-MM-dd-HH-mm-ss");  
    private static SimpleDateFormat tempTime = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");  
    private static SimpleDateFormat excelDate = new SimpleDateFormat("yyyy/MM/dd");  
      
    /** 
     * 格式化excel中的时间 
     * @param date 
     * @return 
     */  
    public static String formatDateForExcelDate(Date date) {  
        return excelDate.format(date);  
    }  
      
    /** 
     * 将日期格式化作为文件名 
     * @param date 
     * @return 
     */  
    public static String formatDateForFileName(Date date) {  
        return fileName.format(date);  
    }  
  
    /** 
     * 格式化日期(精确到秒) 
     *  
     * @param date 
     * @return 
     */  
    public static String formatDateSecond(Date date) {  
        return second.format(date);  
    }  
      
    /** 
     * 格式化日期(精确到秒) 
     *  
     * @param date 
     * @return 
     */  
    public static String tempDateSecond(Date date) {  
        return tempTime.format(date);  
    }  
  
    public static Date tempDateSecond(String str) {  
        try {  
            return tempTime.parse(str);  
        } catch (ParseException e) {  
            e.printStackTrace();  
        }  
        return new Date();  
    }  
    /** 
     * 格式化日期(精确到天) 
     *  
     * @param date 
     * @return 
     */  
    public static String formatDateDay(Date date) {  
        return day.format(date);  
    }  
      
    /** 
     * 格式化日期(精确到天) 
     *  
     * @param date 
     * @return 
     */  
    public static String formatDateDetailDay(Date date) {  
        return detailDay.format(date);  
    }  
  
    /** 
     * 将double类型的数字保留两位小数（四舍五入） 
     *  
     * @param number 
     * @return 
     */  
    public static String formatNumber(double number) {  
        DecimalFormat df = new DecimalFormat();  
        df.applyPattern("#0.00");  
        return df.format(number);  
    }  
  
    /** 
     * 将字符串转换成日期 
     *  
     * @param date 
     * @return 
     * @throws Exception 
     */  
    public static Date formateDate(String date) throws Exception {  
        return day.parse(date);  
    }  
      
    /** 
     * 将字符日期转换成Date 
     * @param date 
     * @return 
     * @throws Exception 
     */  
    public static Date parseStringToDate(String date) throws Exception {  
        return day.parse(date);  
    }  
      
    public static String formatDoubleNumber(double number) {  
        DecimalFormat df = new DecimalFormat("#");  
        return df.format(number);  
    }  
}
